package com.examsage.examsage.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * 
 * </p>
 *
 * @author examsage
 * @since 2025-07-02
 */
@Getter
@Setter
@TableName("major_application")
public class MajorApplication implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 自增主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 考生唯一标识
     */
    @TableField("student_id")
    private Long studentId;

    /**
     * 考生真实姓名
     */
    @TableField("student_name")
    private String studentName;

    /**
     * 身份证号
     */
    @TableField("id_card_no")
    private String idCardNo;

    /**
     * 关联 major_plan.id
     */
    @TableField("major_plan_id")
    private Long majorPlanId;

    /**
     * 申报提交时间
     */
    @TableField("application_date")
    private LocalDateTime applicationDate;

    /**
     * PENDING/APPROVED/REJECTED
     */
    @TableField("status")
    private String status;

    /**
     * 关联 system_user.id
     */
    @TableField("approver_id")
    private Long approverId;

    /**
     * 审核说明
     */
    @TableField("approval_notes")
    private String approvalNotes;

    /**
     * 自动生成
     */
    @TableField("gmt_create")
    private LocalDateTime gmtCreate;

    /**
     * 自动更新
     */
    @TableField("gmt_modified")
    private LocalDateTime gmtModified;
}
